微软拥抱Rust,以作为C和C++的安全替代方案
微软正在探索使用 Rust 编程语言作为 C、C++ 和其他语言的替代方案,以此来改善应用程序的安全状况。
自 2004 年以来,微软安全响应中心(MSRC)已对所有报告过的微软安全漏洞进行了分类。根据他们提供的数据,所有微软年度补丁中约有 70% 是针对内存安全漏洞的修复程序。
▲ 微软每年约有 70% 的漏洞仍然是内存安全问题
这样高的百分比是因为 Windows 和大多数其他微软产品主要使用 C 和 C++ 编写,这两种“内存不安全”(memory-unsafe)的编程语言允许开发人员对内存地址进行细粒度控制,并且可以执行代码。管理内存执行的开发人员代码中的一个漏洞可能导致一系列内存安全错误,攻击者可以利用这些错误带来危险和侵入性后果,例如远程代码执行或特权提升漏洞。
于是,探索使用诸如 Rust 之类的内存安全(memory-safe)语言被提上日程,这或将成为创建更安全的微软应用程序的替代方法。
Rust 最初是 Mozilla 的一个研究项目,用于更安全、更快速地重写 Firefox 浏览器。最近,Brave 浏览器还用 Rust 版本替换了原先用 C++ 编写的广告拦截组件。2019 年的 StackOverflow 开发者调查显示,Rust 已连续四年蝉联“最受开发者喜爱的编程语言”。开发人员喜欢它,因为它的语法更简单,并且使用 Rust 编写的应用程序 bug 更少,因此开发人员可以专注于扩展他们的应用程序,而不是进行持续的维护工作。
MSRC 首席安全工程经理 Gavin Thomas 建议第三方开发人员也应该研究内存安全语言,他列举了一些原因,例如开发人员花时间和精力学习如何调试 C++ 应用程序中出现的与内存相关的安全漏洞。但这显然是不合适的,“开发人员的核心工作不是担心安全性,而是要做功能开发”,Thomas 提出疑问,“为什么不在一开始就将内存安全问题引入开发语言呢?”
为此,他呼吁:“如果这个行业真正关心安全,应该专注于开发人员的工具,而不应当被所有安全设备和过时的方法弄傻眼。我们首先得努力防止开发人员陷入缺陷,而不是提供解决缺陷的指导和工具。”
开源中国征稿啦!
开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 400 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。
现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿
支持 Rust,支持 MS!